iT邦幫忙

2021 iThome 鐵人賽

DAY 14
0
自我挑戰組

Ruby on Rails JS系列 第 14

Ruby on Rails RESTful 網址設計

  • 分享至 

  • xImage
  •  

REST 是 Representational State Transfer 的縮寫,中⽂翻譯成「具象狀態傳輸」,
它是由 Roy Thomas Fielding 博⼠在 2000 年時提出的軟體架構。簡單的說,就是把
每個網址當做資源(Resource)來看待,對同⼀個資源做不同的動作(HTTP
Verb)會得到不同的結果。符合 REST 概念設計的網址,⼜稱之 RESTFul Route。
有什麼好處?
假設某網站的會員系統「編輯會員個⼈資料」功能的網址是:
http://kaochenlong.com/member_edit.php?id=2
在換了不同開發⼈員接⼿後,可能會變這樣:
http://kaochenlong.com/edit_member.php?id=2
網址(或檔名)的設計如果沒有統⼀的規則,有的⽤ member_edit.php ,有的⽤
edit_member.php ,對後⾯接⼿的開發者來說就會不知道哪個檔案才是正在使⽤
的版本,甚⾄可能得⽤最後修改⽇期去猜。
但如果是在 Rails 的話比較沒這困擾,如果 member 當做「資源」的話,那「編輯
會員個⼈資料」的網址⼤概會長這樣:
http://kaochenlong.com/members/2/edit
如果想要看這位會員的資料則是:
11 Routes
150
http://kaochenlong.com/members/2
同理,如果把「會員」換成「商品」:

檢視 2 號商品

http://kaochenlong.com/products/2

編輯 2 號商品

http://kaochenlong.com/products/2/edit
依此類推。
導入 REST 的設計,可讓網址變得更直觀,⽽且也幫開發⼈員訂了⼀套網址設計的
慣例。當你對某個網址使⽤ POST ⽅法存取表⽰是新增資料;當使⽤ PUT 或
PATCH ⽅法表⽰是更新資料,使⽤ DELETE ⽅法則是表⽰刪除資料。不管是老⿃
或是新⼿,⼤多都會遵照這個慣例來設計。再加上 Rails 專案本⾝的結構跟其它的慣
例,只要不要⽤太奇怪的寫法,專案不論⼤⼩都應該很快的可以猜出來哪個⾴⾯是
放在哪個檔案裡。

參考資料

[為你自己學Ruby on Rails]https://railsbook.tw/chapters/08-ruby-basic-4.html


上一篇
Ruby on Rails Route 起步走
下一篇
Ruby on Rails Controller 是幹嘛的
系列文
Ruby on Rails JS29
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言